1. Field of the Invention
The present invention is directed to resource sharing in a digital filter. In particular, the invention is directed to a digital filter comprised of cells which process plural data values and filter coefficients using the same circuitry.
2. Description of the Related Art
Conventional digital filters, such as finite impulse response (hereinafter "FIR") filters, are comprised of a plurality of filter cells, or "tap" cells, arranged in series. Each filter cell includes a data register for storing a sampled data value and a coefficient register which stores a coefficient for that particular cell. In operation, the same sampled data value is input sequentially to each filter cell, and is multiplied by a coefficient for that cell. The results of these multiplications are then output and combined in order to generate the filter's output.
Different types of filter outputs require a different number of filter cells. For example, only two filter cells may be required to simulate the effects of a simple low-pass filter. Additional filter cells, however, may be required to perform more complex filtering. In this regard, generally speaking, as the complexity of the filter's function increases, the number of cells in the filter increases, thereby leading to an increase in the filter's size. This can be problematic, particularly in cases where a large number of filter cells are required, but where there is a limited amount of available space.
There are different ways to decrease a filter's size without decreasing its efficacy. For example, it is possible to remove multiplication circuits from the filter, as described, for example, in U.S. Pat. No. 4,862,402 (Shah et al.). One way to decrease a filter's size, without removing multiplication circuits, is known as resource sharing. Conventional resource sharing involves using the same multiplication circuit to multiply different data values by different coefficients. Since the multiplication circuit is typically the largest component of a digital filter, reducing the number of multiplication circuits in the filter by resource sharing reduces the size of the filter significantly without reducing its capabilities. Advantages flowing from this reduction in size, however, are tempered by the way in which conventional resource sharing reduces the number of multiplication circuits.
More specifically, in conventional resource sharing, two multiplexers are used to control which data values and which coefficients are transmitted to the multiplication circuit. These multiplexers introduce a propagation delay into the filter cell which reduces the maximum clock frequency at which the filter can operate. Moreover, the multiplexers take up additional space, thereby reducing the space savings achieved by the reduction in the number of multiplication circuits.
In addition to the foregoing deficiencies, conventional resource sharing does not adequately address problems specific to adaptive digital filters. In this regard, an adaptive digital filter includes adaptation circuitry in each tap cell, which is designed to update each tap cell's coefficients based on a variety of factors, such as channel characteristics, etc., that could affect data transmission. Although the adaptation circuitry enhances the filter's functionality, the adaptation circuitry also increases the size of the filter.
More specifically, algorithms for generating "adaptive" coefficients, such as the well-known least-mean-square (hereinafter "LMS") algorithm, require a number of multiplication and/or addition operations to be performed on the coefficients. Consequently, several multiplication and/or addition circuits are required on each tap cell in order to perform the additional calculations. For the reasons noted above, this additional circuitry increases the overall size of the filter significantly.
Thus, there exists a need for a way in which to reduce the amount of circuitry used in an adaptive digital filter, without adversely affecting the operation of the filter.